# Makefile for pulldata

.PHONY: build run clean help

# 构建目标
BINARY_NAME=pulldata
BUILD_DIR=../../build

# 默认目标
all: build

# 构建程序
build:
	@echo "构建 pulldata 程序..."
	@mkdir -p $(BUILD_DIR)
	go build -o $(BUILD_DIR)/$(BINARY_NAME) .

# 运行程序（示例）
run: build
	@echo "运行 pulldata 程序..."
	@cd $(BUILD_DIR) && ./$(BINARY_NAME) --help

# 运行示例（下载指定时间范围的数据）
run-example: build
	@echo "运行示例：下载2025年1月的数据..."
	@cd $(BUILD_DIR) && ./$(BINARY_NAME) \
		--server "http://xxchuan.com:3036" \
		--start "2025-01-01" \
		--end "2025-01-31" \
		--output "posedata" \
		--page-size 20

# 运行示例（下载所有数据）
run-all: build
	@echo "运行示例：下载所有数据..."
	@cd $(BUILD_DIR) && ./$(BINARY_NAME) \
		--server "http://xxchuan.com:3036" \
		--output "posedata" \
		--page-size 50

# 清理构建文件
clean:
	@echo "清理构建文件..."
	@rm -rf $(BUILD_DIR)/$(BINARY_NAME)

# 安装依赖
deps:
	@echo "安装依赖..."
	go mod tidy
	go get github.com/spf13/cobra
	go get github.com/sirupsen/logrus

# 测试
test:
	@echo "运行测试..."
	go test -v ./...

# 格式化代码
fmt:
	@echo "格式化代码..."
	go fmt .

# 代码检查
lint:
	@echo "代码检查..."
	golangci-lint run

# 帮助信息
help:
	@echo "可用的 Make 目标："
	@echo "  build        - 构建程序"
	@echo "  run          - 运行程序并显示帮助"
	@echo "  run-example  - 运行示例：下载指定时间范围的数据"
	@echo "  run-all      - 运行示例：下载所有数据"
	@echo "  clean        - 清理构建文件"
	@echo "  deps         - 安装依赖"
	@echo "  test         - 运行测试"
	@echo "  fmt          - 格式化代码"
	@echo "  lint         - 代码检查"
	@echo "  help         - 显示此帮助信息"
	@echo ""
	@echo "使用示例："
	@echo "  make run-example  # 下载2025年1月的数据"
	@echo "  make run-all      # 下载所有数据" 